/*
 * Copyright (c) 2018-2999 北京小象智慧信息科技有限公司 All rights reserved.
 *
 * https://www.xiaoxiangai.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

@Data
@TableName("tz_order")
public class Order implements Serializable {
    private static final long serialVersionUID = 6222259729062826852L;
    /**
     * 订单ID
     */
    @TableId
    private Long orderId;

    /**
     * 店铺id
     */
    private Long shopId;

    /**
     * 产品名称,多个产品将会以逗号隔开
     */
    private String prodName;

    /**
     * 订购用户ID
     */
    private String userId;

    /**
     * 订购流水号
     */
    private String orderNumber;

    /**
     * 总值
     */
    private Double total;

    /**
     * 实际总值
     */
    private Double actualTotal;

    /**
     * 支付方式 1 微信支付 2 支付宝
     */
    private Integer payType;

    /**
     * 订单备注
     */
    private String remarks;

    /**
     * 订单状态  1:待付款 2:待发货 3:待收货 5:确认收货   6:确认收货3天后订单完成    7:订单关闭
     */
    private Integer status;

    /**
     * 退款状态  0：否    1：是    2：退款成功    3：退款失败
     */
    private Integer refundState;

    /**
     * 有效订单   0:正常订单     1：取消订单
     */
    private Integer orderState;
    /**
     * 配送类型
     */

    private String dvyType;

    /**
     * 配送方式ID
     */

    private Long dvyId;

    /**
     * 物流单号
     */

    private String dvyFlowId;

    /**
     * 订单运费
     */

    private Double freightAmount;

    /**
     * 用户订单地址Id
     */

    private Long addrOrderId;

    /**
     * 订单商品总数
     */

    private Integer productNums;

    /**
     * 订购时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 订单更新时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 付款时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 发货时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dvyTime;

    /**
     * 完成时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finallyTime;

    /**
     * 取消时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    /**
     * 是否已经支付，1：已经支付过，0：，没有支付过
     */
    private Integer isPayed;

    /**
     * 用户订单删除状态，0：没有删除， 1：回收站， 2：永久删除
     */
    private Integer deleteStatus;

    /**
     * 0:默认,1:在处理,2:处理完成
     */
    private Integer refundSts;

    /**
     * 优惠总额
     */
    private Double reduceAmount;

    /**
     * 店铺名称
     */
    @TableField(exist = false)
    private String shopName;

    /**
     * 优惠券id
     */
    private String recordId;

    /**
     * 店铺使用优惠券id
     */
    private Long shopRecordId;

    /**
     * 收货时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deliveryTime;

    /**
     * 自提时间
     */
    private String pickupTime;

    @TableField(exist = false)
    private List<OrderItem> orderItems;

    /**
     * 用户订单地址
     */
    @TableField(exist = false)
    private UserAddrOrder userAddrOrder;

    /**
     * 店铺信息
     */
    @TableField(exist = false)
    private  ShopDetail shopDetail;

    /**
     * 推荐人
     */
    private String tjr;

    /**
     * 返利金额
     */
    //private Double rebateMoney;

    /**
     * 退款原因
     */
    private String refundReason;

    /**
     * 是否自提  0:自提,1:非自提
     */
    private Integer isSelfRais;

    /**
     * 退款凭证
     */
    private String refundImg;

    /**
     * 退款说明
     */
    private String refundExplain;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 商家删除订单
     */
    private int deleteType;

    /**
     * 快递流水号
     */
    private int poiSeq;

    /**
     * 美团配送标志
     */
    private int distributionFlag;

    /**
     * 配送类型
     */
    private int distributionType;

    /**
     * 配送价格
     */
    private double deliveryPrice;

    /**
     * 具体地址
     */
    @TableField(exist = false)
    private String street;

    /**
     * 拼团ID
     */
    private Long ptglid;

    /**
     * 拼团状态
     */
    @TableField(exist = false)
    private  String ptstatus;

    /**
     * 收银员信息
     */
    private Long cashier;

    /**
     * 银商订单号
     * */
    private String originalOrderId;

    /**
     * 收货人姓名
     */
    @TableField(exist = false)
    private String receiver;

    /**
     * 收银员姓名
     */
    @TableField(exist = false)
    private String cashierName;

    /**
     * 消息绑定的cip
     */
    private String cid;

    @TableField(exist = false)
    private int size;
    @TableField(exist = false)
    private int current;

    /**
     * 修改人id
     * */
    private Long updateBy;

    //客户名称
    @TableField(exist = false)
    private String nikeName;

    //客户电话号码
    @TableField(exist=false)
    private String userPhone;

    /**
     * 旧账户支付金额
     */
    private BigDecimal oldAccountPay;

    /**
     * 店铺账户支付
     */
    private BigDecimal newAccountPay;

    /**
     * 现金支付
     */
    private BigDecimal cashPay;

    /**
     * 银联支付
     */
    private BigDecimal unionPay;

    /**
     * 是否是混合支付订单
     */
    private  int mixedPayment;

    /**
     * 实收款
     */
    private BigDecimal actualCollection;

    /**
     * 找零
     */
    private BigDecimal giveChange;



}
